flowchart TD
    %% 시작 노드: 라벨을 따옴표로 감싸서 안전하게 처리
    Start(("START: python main.py")) --> Menu{"모드 선택
(1 또는 2)"} %% 1. 에이전트 선택 단계 subgraph Init [초기화 단계] direction TB PxBoot["1. PxAgent 가동
설교 자료 생성 비서"] DayBoot["2. DayMedi 가동
묵상 에세이 작가"] end Menu -- "1 입력" --> PxBoot Menu -- "2 입력" --> DayBoot %% 2. 공통 루프 단계 subgraph EventLoop [메인 실행 루프] InputUser[/"USER 입력 대기
(URL 또는 명령)"/] CheckExit{"종료 명령인가?
(exit/quit)"} RunAgent{"선택된 에이전트 실행
bot.run()"} end PxBoot --> InputUser DayBoot --> InputUser InputUser --> CheckExit CheckExit -- Yes --> End((종료)) CheckExit -- No --> RunAgent %% 3-A. PxAgent 워크플로우 subgraph PxFlow [PxAgent 프로세스] direction TB PxCheckData{"URL + 시간 정보
포함되었는가?"} PxAskData["시간/URL 요청 메시지 반환"] PxProcess["YouTube 구간 전사
(Start ~ End)"] PxGen["LLM: 구조화 문서 생성
(기도문, 질문, 요약 등)"] PxFile["파일 저장: RTF, DOCX"] PxEmail["이메일 발송"] end %% 3-B. DayMedi 워크플로우 subgraph DayFlow [DayMedi 프로세스] direction TB DayCheckData{"URL
포함되었는가?"} DayAskData["URL 요청 메시지 반환"] DayProcess["YouTube 전체 전사
(Full Transcript)"] DayGen["LLM: 묵상 에세이 작성
(감동적인 작가 모드)"] DayFile["파일 저장: TXT
(바탕화면)"] end %% 연결 로직 RunAgent -- PxAgent --> PxCheckData RunAgent -- DayMedi --> DayCheckData %% PxAgent 흐름 PxCheckData -- No --> PxAskData PxCheckData -- Yes --> PxProcess --> PxGen --> PxFile --> PxEmail PxEmail --> PxOut[/"결과 출력"/] PxAskData --> PxOut %% DayMedi 흐름 DayCheckData -- No --> DayAskData DayCheckData -- Yes --> DayProcess --> DayGen --> DayFile DayFile --> DayOut[/"결과 출력"/] DayAskData --> DayOut %% 루프 복귀 PxOut --> InputUser DayOut --> InputUser %% 스타일링 style Start fill:#f9f,stroke:#333,stroke-width:2px style Menu fill:#ff9,stroke:#333 style PxFlow fill:#e1f5fe,stroke:#01579b style DayFlow fill:#f3e5f5,stroke:#4a148c style End fill:#333,stroke:#fff,color:#fff